package com.jic.point.service;

import com.github.pagehelper.PageInfo;
import com.jic.point.model.entity.ConfActivityRule;
import com.jic.point.model.entity.ConfBdPlatfromRela;
import com.jic.point.model.entity.ConfPlatform;
import com.jic.point.model.vo.response.ConfFaultTreeResponse;
import com.jic.point.rest.request.SignData;

import java.math.BigDecimal;
import java.util.List;

/**
 * ConfPlatform表
 *
 * @author : 建投数据
 * @version : v1.0.0
 * @email :
 * @since : 2020-03-21 10:12:20
 */
public interface ConfPlatformService {

    /**
     * 保存接口
     *
     * @param request 保存入参
     * @return int 是否保存成功
     * @auther tzc
     * @date 2020-3-11 20:58:44
     */
    int save(ConfPlatform request);

    /**
     * 保存或修改接口
     *
     * @param request 保存或修改入参
     * @return int 是否保存或修改成功
     * @auther tzc
     * @date 2020-3-11 20:58:44
     */
    int saveOrUpdate(ConfPlatform request);

    /**
     * 保存或修改接口
     *
     * @param request 保存或修改入参
     * @return int 是否保存或修改成功
     * @auther tzc
     * @date 2020-3-11 20:58:44
     */
    int saveOrUpdateAudit(ConfPlatform request);

    /**
     * 删除接口
     *
     * @param request 删除入参
     * @return int 是否物理删除成功
     * @auther tzc
     * @date 2020-3-11 20:58:44
     */
    int deleteByPrimaryKey(ConfPlatform request);

    /**
     * 删除接口
     *
     * @param request 删除入参
     * @return int 是否逻辑删除成功
     * @auther tzc
     * @date 2020-3-11 20:58:44
     */
    int deleteByPrimaryKeyLogically(ConfPlatform request);

    /**
     * 修改
     *
     * @param request 修改入参实体类
     * @return int 是否修改成功
     */
    int updateByPrimaryKeySelective(ConfPlatform request);

    /**
     * 详情
     *
     * @param request 详情查询实体类
     * @return ConfPlatform数据库查询返回的实体类
     * @auther
     */
    ConfPlatform getByPrimaryKey(ConfPlatform request);


    /**
     * 菜单
     *
     * @return
     */
    List<ConfFaultTreeResponse> selectFaultTree();

    /**
     * 分页查询
     *
     * @param request 入参查询实体类
     * @return 数据库查询到的, 分页后的实体类列表
     */
    PageInfo<ConfPlatform> listPageBySelective(ConfPlatform request, int pageNum, int pageSize);
    PageInfo<ConfPlatform> listPagefreeze(ConfPlatform request, int pageNum, int pageSize);

    /**
     * 不分页查询
     *
     * @param request 查询入参实体类
     * @return 实体类列表
     */
    List<ConfPlatform> listAllRecord(ConfPlatform request);

    ConfPlatform getPlatformCode(String platformCode);

    /**
     * 查询全部平台 用以下拉框
     *
     * @return
     */
    List<ConfPlatform> getAlltPlatform();

    /**
     * 添加信息
     *
     * @param confPlatform
     * @return
     */
    int insertSelective(ConfPlatform confPlatform);

    ConfPlatform getByPrimaryCode(ConfPlatform confPlatform);

    /**
     * @Auther: YGH
     * @DATE: 2020/11/26
     * 通过平台查看关联的部门
     */
    List<ConfBdPlatfromRela> getPlatfromRela(ConfPlatform param);

    /**
     *@Auther: YGH
     *@DATE: 2020/11/26
     * 生成活动进行积分扣除
     */
    int activityRuleDeductionPoints(ConfActivityRule confActivityRule);

    int insertPlatFromLog(ConfActivityRule confActivityRule);

    //通过code查询 平台
    List<ConfPlatform> selectByPrimaryCode(SignData signData);

    BigDecimal queryAvailablePoint(String busiCode);

    int platformPointAdd(ConfPlatform confPlatform);

    int platformPointDeduction(ConfPlatform confPlatform);
}

